import java.util.ArrayList;
import java.io.FileNotFoundException;
import java.io.IOException;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author sergi
 */
public class ControladorTexto {
    private GestorTexto gt;
    private Texto t;

    public ControladorTexto() {
        gt = new GestorTexto();
        t = new Texto();
    }

    public ArrayList<String> gettexto() {
        return t.gettexto();
    }

    public void salvar(String ruta)throws FileNotFoundException, IOException {
        gt.salvartexto(t.gettexto(),ruta);
    }

    public ArrayList<String> cargar(String a)throws FileNotFoundException, IOException {
        t.settexto(gt.cargartexto(a));
        return t.gettexto();
    }

    public ArrayList<String> palabrasinc(String nombredic, ArrayList<String> d, ControladorDiccionario cd) {
        int i;
        t.settexto(d);
        ArrayList<String> a = new ArrayList();
        ArrayList<String> ret = new ArrayList();
        for(i = 0; i < d.size(); ++i) {
            a = t.getpalinc(nombredic,d.get(i), cd);
            int j;
            for(j = 0; j < a.size(); ++j) {
                ret.add(a.get(j));
            }
        }
        return ret;
    }

    public String getlinea(int lin) {
        return t.getlinea(lin);
    }

    public void anadirlinea(String a, int lin) {
        t.anadirlinea(a, lin);
    }

    public void borrarlinea(int lin) {
        t.borrarlinea(lin);
    }

    public void modificarlinea(String a, int lin) {
        t.borrarlinea(lin);
        t.anadirlinea(a, lin);
    }

    public ArrayList<StringDouble> getkposibles(String palinc, Reglas r, Trie tr, Algoritmo a, int k) throws ExcepcionVacio {
        return t.getkposibles(palinc, r, tr, a, k);
    }

    public int longitud() {
        return t.longitud();
    }

    public void cambiarpaltodo(String inc, String cor) {
        t.cambiarpaltodo(inc,cor);
    }

    public void cambiarpalsola(String inc, String cor, int rep) {
        t.cambiarpalsola(inc,cor,rep);
    }
}
